草庐IT

Go switch vs if-else效率

全部标签

c++ - if else if,代码只解析到else条件

我正在尝试制作一个非常基本的文字冒险来测试我的基本技能。基本移动提示用户输入,如果它匹配某些字符串,则更改它们的坐标。我知道,这很愚蠢。但是if、elseif、else匹配它们的响应总是返回else,即使您输入其中之一匹配的字符串。stringaction;stringwest="gowest";stringeast="goeast";stringnorth="gonorth";stringsouth="gosouth";stringprompt="Don'tjuststandaroundwithyourdaggerinyourass!Dosomething!";//iwroteabu

c++ - C++ 标准中的 if..else 语句

来自C++标准第6.4.1节:if语句:Ifthecondition(6.4)yieldstruethefirstsubstatementisexecuted.Iftheelsepartoftheselectionstatementispresentandtheconditionyieldsfalse,thesecondsubstatementisexecuted.Inthesecondformofifstatement(theoneincludingelse),ifthefirstsubstatementisalsoanifstatementthenthatinnerifstatem

c++ - c++中std::min(int)的效率

我的代码中有一个迭代1亿次的循环(需要模拟模型的1亿次复制)。对于1亿次迭代中的每一次,我通过索引名为age的整数变量从数组(myarray)中检索一个值。由于数组的长度,只对age=0,...,99索引myarray[age]有效。但是,age的实际域是0,...,inf。所以,我有以下功能inttidx(constint&a){returnstd::min(a,99);}允许通过myarray[tidx(age)]进行索引。我怎样才能更有效地做到这一点?[性能输出低于]构建说明我正在使用的编译器标志的源文件的示例:Buildingfile:../SAR.cppInvoking:GC

c++ - 条件运算符总是可以被 if/else 替换吗?

直到现在我还在想条件运算符inta=b==2?x1:x2;始终可由if/else语句替换。inta;if(b==2)a=x1;elsea=x2;两者之间的选择总是一个品味问题。今天我正在处理一项任务,如果我可以写的话,引用将会很有用:int&a;if(b==2)a=x1;elsea=x2;这是不允许的,我尝试使用条件运算符初始化引用。这很有效,我开始意识到,条件运算符并不总是可以用if/else语句替换。我的结论对吗? 最佳答案 你是对的。条件运算符是一个表达式,而if-else是一个语句。可以用语句的地方可以用表达式,反之则不然。

java - 覆盖与分配/解除分配——效率

我正在编写一个C++应用程序,它需要一block内存(大约1000字节)作为一些文本处理的临时缓冲区。该操作每秒最多可重复10,000次。任何人都可以确认每次我需要缓冲区时分配内存(即使用智能指针新建,超出范围时内存被释放)比拥有固定缓冲区并清除它(写它的每个字节都有一个零)每次处理完成?这听起来像是C++的常识,但我在互联网上找不到任何可以证实这一点的东西。具有自动垃圾收集功能的计算机语言(例如Java、.net)的情况是否有所不同? 最佳答案 每次需要时分配和释放内存的成本可能更高,但更大的问题是:这重要吗?以您知道如何正确工作

c++ - Bison 值(value) move/效率

我正在根据Bison的语义值构建我的解析数据结构。一个特定的结构是类型std::vector.我很好奇Bison内部如何处理move的语义值。我尝试分析c++.m4文件,发现:templateinlinevoid]b4_parser_class_name[::basic_symbol::move(basic_symbol&s){super_type::move(s);]b4_variant_if([b4_symbol_variant([this->type_get()],[value],[move],[s.value])],[value=s.value;])[]b4_locations

C++矩阵计算效率

我们正在尝试优化我们的C++代码,我们有以下矩阵计算(使用Eigen库)#includeintmain(){MatrixXdP=MatrixXd::Random(30,30);//arandomdouble30x30matrixPMatrixXdM=MatrixXd::Random(30,30);//arandomdouble30x30matrixMMatrixI;I.setIdentity();//Iisan30x30identitymatirxP=(I-M)*Preturn0;}其中都是nxn矩阵,I是单位矩阵。我们发现重写上面的矩阵计算P=(I-M)*P作为P=P-M*P在使用g

c++ - 稀疏 x 密集矩阵乘法性能效率低下

上下文:我将Eigen用于人工神经网络,其中典型维度为每层约1000个节点。所以大部分操作是将大小为~(1000,1000)的矩阵M与大小为1000的vector或一批Bvector相乘,表示为矩阵大小Bx1000。训练神经网络后,我使用剪枝-这是一种常见的压缩技术,最终得到稀疏矩阵(非空参数的密度在10%到50%之间)。目标:我想使用稀疏矩阵进行压缩,其次用于性能优化,但这不是主要目标问题:我正在比较不同批量大小的稀疏矩阵乘法和密集矩阵乘法(仅计算乘法时间)的性能,我正在观察以下内容(使用Eigen3.2.8,MacBookPro64位,不带open_mp,并使用标准g++):当B=

c++ - 如何测量代码更改的电源效率增加或减少

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion在嵌入式/移动环境中,当我们为其开发软件时必须考虑电池功耗,因此节能软件编程在嵌入式/移动世界中很重要。问题是,(关于Assembly/C/C++)认为当它在任意平台上运行时我们有稳定的软件版本X它消耗Y量的功率(以瓦特为单位),现在我们要执行一些代码变化,我们想衡量它在构建时对能源消耗及其效率的影响。INT16Ux=OXFFFF;/...somecodeinstablerelease.../for(;x

c++ - 循环、功能设计和效率 : two questions

我有两个相关问题,一个是一般性的,一个是针对我正在从事的项目的。一般来说,如果我有一个包含大量迭代(数百万次)且某些代码部分在特定条件下执行的循环,那么一个循环包含多个条件语句更好(效率更高)还是多个循环没有它们更好(更有效)。例如。示例1:while(something()){//somecommoncodeif(condition_a)//somecodeif(condition_b)//somecode//somemorecommoncode}示例2:if(condition_a&&condition_b){while(something()){//somecommonandsp